<?php //ver.2011 0.1 - Eugenio Ghiglia <eugenio@blux.org> - 

function _cron_pubblicazione_annunci() {
    global $db;
    global $_SESSION;
    // *** cron ogni 20 minuti, 10 annunci ***
    $sql="SELECT * FROM tbl_cron
           WHERE cronjob='PUBBLICA'
             AND crontime + INTERVAL 20 MINUTE > NOW()";
    $db->sql_arr($sql, $record, $n);
    if (!$n) {
        $sql="SELECT id_annuncio, id_utente FROM tbl_annunci
               WHERE attivo='0'
                 AND scaduto='0'
                 AND da_pagare=pagato
               ORDER by id_annuncio ASC  
               LIMIT 10";
        $db->sql_arr($sql, $record, $n);
        for ($i=0;$i<$n;$i++) {
		      $sql="UPDATE tbl_annunci SET
                        attivo='1',
                        data_pubblicazione_online=NOW()
                     WHERE id_annuncio='".$record[$i]['id_annuncio']."'";
               $db->sql($sql);
               // *** notifica all'utente *** 
               if (true) {
                   $subject="[".$_SERVER['SERVER_NAME']."] conferma di pubblicazione annuncio ".$record[$i]['id_annuncio'];
                   $db->sql_arr("SELECT nome, cognome, email FROM tbl_utenti WHERE id_utente='".$record[$i]['id_utente']."'",$dati,$n_dati);
                   $message="Gentile ".$dati[0]['nome']." ".$dati[0]['cognome'].",\n";
                   $message.="il tuo annuncio (ID=".$record[$i]['id_annuncio'].") è stato pubblicato!\n\n";
                   $message.="link: http://".$_SERVER['SERVER_NAME']."/annunci.html?view=".$record[$i]['id_annuncio']."\n\n";
                   $message.="Non rispondere a questo messaggio, in quanto inviato automaticamente dal sistema.\n";
                   $message.="Per informazioni contatta l'indirizzo ".$_SESSION['CONFIG']['MAIL_REF']."\n\n";
                   mailto($dati[0]['email'],$subject,$message,'noreply-pubblicazione@'.get_dominio());
               }      
		}
        $db->sql("INSERT INTO tbl_cron (crontime, cronjob) VALUES (NOW(),'PUBBLICA')");
    }
    return true;
}

function _cron_scadenza_annunci() {
    global $db;
    global $_SESSION;
    // *** cron ogni 20 minuti, 10 annunci ***
    $sql="SELECT * FROM tbl_cron
           WHERE cronjob='SCADENZA'
             AND crontime + INTERVAL 20 MINUTE > NOW()";
    $db->sql_arr($sql, $record, $n);
    if (!$n) {
        $sql="SELECT id_annuncio, id_utente FROM tbl_annunci
               WHERE attivo='1'
                 AND scaduto='0'
                 AND da_pagare=pagato
                 AND data_pubblicazione_online + INTERVAL durata_gg DAY < NOW()
               ORDER by id_annuncio ASC  
               LIMIT 10";
        $db->sql_arr($sql, $record, $n);
        for ($i=0;$i<$n;$i++) {
              $sql="UPDATE tbl_annunci SET
                        scaduto='1'
                     WHERE id_annuncio='".$record[$i]['id_annuncio']."'";
               $db->sql($sql);
               // *** notifica all'utente *** 
               if (true) {
                   $subject="[".$_SERVER['SERVER_NAME']."] scadenza annuncio ".$record[$i]['id_annuncio'];
                   $db->sql_arr("SELECT nome, cognome, email FROM tbl_utenti WHERE id_utente='".$record[$i]['id_utente']."'",$dati,$n_dati);
                   $message="Gentile ".$dati[0]['nome']." ".$dati[0]['cognome'].",\n";
                   $message.="il tuo annuncio (ID=".$record[$i]['id_annuncio'].") è scaduto!\n";
                   $message.="Se vuoi ripubblicare l'annuncio collegati al portale e clicca sulla voce \"pubblica ancora\" in corrsipondenza dell'annuncio scaduto.\n\n";
                   $message.="Non rispondere a questo messaggio, in quanto inviato automaticamente dal sistema.\n";
                   $message.="Per informazioni contatta l'indirizzo ".$_SESSION['CONFIG']['MAIL_REF']."\n\n";
                   mailto($dati[0]['email'],$subject,$message,'noreply-pubblicazione@'.get_dominio());
               }      
        }
        $db->sql("INSERT INTO tbl_cron (crontime, cronjob) VALUES (NOW(),'SCADENZA')");
    }
    return true;
}


function _cron_clean_uploads() {
    global $db;
    global $_SESSION;
    // *** cron ogni 2 giorni ***
    $sql="SELECT * FROM tbl_cron
           WHERE cronjob='CLEAN_UPLOADS'
             AND crontime + INTERVAL 2 DAY > NOW()";
    $db->sql_arr($sql, $record, $n);
    if (!$n) {
        if ($handle = opendir('./uploads')) {
            while (false !== ($file = readdir($handle))) {
                if (substr($file,0,1)!='.') {
                    list($foo,$data,$foo2)=explode('_',$file);
                    if ($data!=date('Ymd')) {
                        @unlink('./uploads/'.$file);
                    }
                }
            }
            closedir($handle);
        }
        
        $db->sql("INSERT INTO tbl_cron (crontime, cronjob) VALUES (NOW(),'CLEAN_UPLOADS')");
    }
    return true;
}

function _cron_admin_report() {
    global $db;
    global $_notify_email;
    global $_SESSION;
    // *** cron ogni 12 ore ***
    $sql="SELECT * FROM tbl_cron
           WHERE cronjob='ADMIN_REPORT'
             AND crontime + INTERVAL 12 HOUR > NOW()";
    $db->sql_arr($sql, $record, $n);
        if (!$n) {
            $sql="SELECT id_annuncio, attivo, scaduto, da_pagare, pagato, id_transazione, descrizione, data_pubblicazione_online
                    FROM tbl_annunci
                    WHERE data_inserimento > (SELECT MAX(crontime) as crontime FROM tbl_cron WHERE cronjob='ADMIN_REPORT')
                    ORDER BY id_annuncio"; 
            $db->sql_arr($sql, $record, $n);
            if ($n) {        
                
                $message='';
                for ($i=0;$i<$n;$i++) {
				    $message.="ID: ".$record[$i]['id_annuncio']."\n";
                    $message.="Attivo=".(($record[$i]['attivo'])?'SI':'NO')."    Scaduto=".(($record[$i]['scaduto'])?'SI':'NO')."    ";
                    $message.="Da Pagare=".(($record[$i]['da_pagare'])?'SI':'NO')."    Pagato=".(($record[$i]['pagato'])?'SI':'NO')."\n";
                    if ($record[$i]['pagato']) $message.="id transazione=".$record[$i]['id_transazione']."\n";
                    $message.="Data pubb. online: ".$record[$i]['data_pubblicazione_online']."\n";
                    if ($record[$i]['descrizione']) $message.="------------------------------\n ".$record[$i]['descrizione']."\n------------------------------\n";
                    $message.="[RIMUOVI]http://".$_SERVER['SERVER_NAME']."/manage/admin.php?key=".md5($_SESSION['CONFIG']['PASSPHRASE'].date('Ym'))."&id=".$record[$i]['id_annuncio']."&a=remove\n";
                    if ($record[$i]['da_pagare'] && !$record[$i]['pagato']) $message.="[PAGATO]http://".$_SERVER['SERVER_NAME']."/manage/admin.php?key=".md5($_SESSION['CONFIG']['PASSPHRASE'].date('Ym'))."&id=".$record[$i]['id_annuncio']."&a=paid\n";
                    $message.="\n\n";
				}
                
                $subject="\n[".$_SERVER['SERVER_NAME']."] report annunci delle ultime 12 ore";
                $message.="Questa mail è stata inviata automaticamente dal sistema.\n\n";
                mailto($_notify_email,$subject,$message,'noreply-cron@'.get_dominio());
              
            }
        $db->sql("INSERT INTO tbl_cron (crontime, cronjob) VALUES (NOW(),'ADMIN_REPORT')");
    }
    return true;    
}

function _cron_admin_log_report() {
    global $db;
    global $_notify_email;
    global $_SESSION;
    // *** cron ogni giorno ***
    $sql="SELECT * FROM tbl_cron
           WHERE cronjob='ADMIN_LOGS'
             AND crontime + INTERVAL 24 HOUR > NOW()";
    $db->sql_arr($sql, $record, $n);
        if (!$n) {
            $sql="SELECT *, 'error' as tipo FROM tbl_error_log
                   WHERE logtime > NOW() - INTERVAL 24 HOUR
                  UNION
                  SELECT *, 'warning' as tipo FROM tbl_warning_log
                   WHERE logtime > NOW() - INTERVAL 24 HOUR"; 
            $db->sql_arr($sql, $record, $n);
            if ($n) {        
                
                $message='';
                for ($i=0;$i<$n;$i++) {
                    $message.=$record[$i]['tipo']." ".$record[$i]['logtime']."\n".$record[$i]['evento']."\n\n";
                }
                
                $subject="\n[".$_SERVER['SERVER_NAME']."] report LOGS ";
                $message.="Questa mail è stata inviata automaticamente dal sistema.\n\n";
                mailto($_notify_email,$subject,$message,'noreply-cron@'.get_dominio());
              
            }
        $db->sql("INSERT INTO tbl_cron (crontime, cronjob) VALUES (NOW(),'ADMIN_LOGS')");
    }
    return true;    
}
?>
